#ifndef RT_RECORD_H
#define RT_RECORD_H

/*===========================[Includes]======================================*/


#include "stdint.h"
#include "../utils/list_node.h"

#ifdef __cplusplus
extern "C" {
#endif


/*===========================[Defines]=======================================*/

/**> 链表类型 */
typedef enum
{
    /**> 总览页面 */
    OverviewAlarmEvt        = 0,       
    OverviewFireRecomAlarmEvt  ,     
    OverviwOtherEvt            ,     

    /**> 分页页面 */
    PageFireEvt                ,     
    PageAlarmEvt               ,     
    PageRecomEvt               ,     
    PageActiveEvt              ,      /**> 启动事件 */
    PageFeedbackEvt            ,     
    PageSuperviseEvt           ,      /**> 监管事件 */
    PageFaultEvt               ,     
    PageShieldEvt              ,  
    PageOtherEvt               ,
    RecodMax   
}record_type_t;


/*===========================[Macros]========================================*/
/*===========================[Typedef]=======================================*/

/*===========================[Global Prototypes]=============================*/

/**
 * @brief 事件链表头插事件
 * 
 * @param type 记录类型
 * @param evt  事件
 */
int rt_record_init() ;


void record_add_list(record_type_t type, report_data_t evt);
/**
 * @brief 事件链表 正序按照指定索引读取事件
 * 
 * @param type 
 * @param index 
 * @param evt 
 * @return void
 */
void record_read(record_type_t type, uint16_t index, report_data_t *evt);


/**
 * @brief 事件链表 正序按照指定索引读取事件
 * 
 * @param type 
 * @param index 
 * @param evt 
 * @return void
 */
int get_record_evt_num(record_type_t type);



#ifdef __cplusplus
}
#endif

#endif

